/*
 * Clase que gestiona los ingresos del videoclub(alquileres)
 */

package gestorvideoclub;

import gestorvideoclub.jdbc.IngresoJDBC;
import gestorvideoclub.util.*;
import java.util.ArrayList;

import java.util.Date;
import java.util.Iterator;

/**
 *
 * @author Rafa Berral
 */
public class Ingreso extends Contabilidad{

    //Alquiler alquiler;
    Cliente cliente;

    public Ingreso(){}

    public Ingreso(Date fecha, double importe, String descripcion, Cliente cliente){
        super(fecha, importe, descripcion, "Ingreso");
        //this.alquiler = alquiler;
        this.cliente = cliente;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

        @Override
    public boolean equals(Object o){
        boolean comp = false;
        if(o instanceof Ingreso){
            Ingreso ingreso = (Ingreso)o;
            if(this.getCliente().getId() == ingreso.getCliente().getId() && this.getFecha().equals(ingreso.getFecha())
                    && this.getImporte() == ingreso.getImporte() && this.getDescripcion().equals(ingreso.getDescripcion())){
                    comp = true;
            }
        }
        return comp;
    }

    @Override
    public String toString(){
        String cad = "Ingreso de "+this.getImporte()+" euros Fecha: "+UtilFecha.fechaMostrar(this.getFecha());
        return cad;
    }

    @Override
    public void insertarMovimiento(Contabilidad c) {
        IngresoJDBC.altaIngreso(this);
    }


    public static void obtenerIngresoPorFecha(Date fechaInicio, Date fechaFin){
        ArrayList<Ingreso> listaIngreso =  IngresoJDBC.consultarIngresoPorFecha(fechaInicio, fechaFin);
        double conta = 0;
        if(!listaIngreso.isEmpty()){

            Iterator it = listaIngreso.iterator();
            while(it.hasNext()){
                Ingreso ingreso = (Ingreso)it.next();
                conta = conta + ingreso.getImporte();
            }
            System.out.println("\nEl gasto de los gasto de las fechas indicadas es de: "+conta+" euros");
        }
        else{
            System.out.println("\n[!] No hay gastos en las fechas indicadas");
        }

    }
}
